home *** CD-ROM | disk | FTP | other *** search
- package javax.print;
-
- import java.security.AccessController;
- import java.security.PrivilegedActionException;
- import java.util.ArrayList;
- import javax.print.attribute.AttributeSet;
- import sun.awt.AppContext;
-
- public abstract class PrintServiceLookup {
- private static Services getServicesForContext() {
- Services var0 = (Services)AppContext.getAppContext().get(Services.class);
- if (var0 == null) {
- var0 = new Services();
- AppContext.getAppContext().put(Services.class, var0);
- }
-
- return var0;
- }
-
- private static ArrayList getListOfLookupServices() {
- return javax.print.PrintServiceLookup.Services.access$000(getServicesForContext());
- }
-
- private static ArrayList initListOfLookupServices() {
- ArrayList var0 = new ArrayList();
- javax.print.PrintServiceLookup.Services.access$002(getServicesForContext(), var0);
- return var0;
- }
-
- private static ArrayList getRegisteredServices() {
- return javax.print.PrintServiceLookup.Services.access$100(getServicesForContext());
- }
-
- private static ArrayList initRegisteredServices() {
- ArrayList var0 = new ArrayList();
- javax.print.PrintServiceLookup.Services.access$102(getServicesForContext(), var0);
- return var0;
- }
-
- public static final PrintService[] lookupPrintServices(DocFlavor var0, AttributeSet var1) {
- ArrayList var2 = getServices(var0, var1);
- return (PrintService[])var2.toArray(new PrintService[var2.size()]);
- }
-
- public static final MultiDocPrintService[] lookupMultiDocPrintServices(DocFlavor[] var0, AttributeSet var1) {
- ArrayList var2 = getMultiDocServices(var0, var1);
- return (MultiDocPrintService[])var2.toArray(new MultiDocPrintService[var2.size()]);
- }
-
- public static final PrintService lookupDefaultPrintService() {
- for(PrintServiceLookup var1 : getAllLookupServices()) {
- try {
- PrintService var2 = var1.getDefaultPrintService();
- if (var2 != null) {
- return var2;
- }
- } catch (Exception var3) {
- }
- }
-
- return null;
- }
-
- public static boolean registerServiceProvider(PrintServiceLookup var0) {
- synchronized(PrintServiceLookup.class) {
- for(Object var3 : getAllLookupServices()) {
- try {
- if (var3.getClass() == var0.getClass()) {
- boolean var10000 = false;
- return var10000;
- }
- } catch (Exception var5) {
- }
- }
-
- getListOfLookupServices().add(var0);
- return true;
- }
- }
-
- public static boolean registerService(PrintService var0) {
- synchronized(PrintServiceLookup.class) {
- if (var0 instanceof StreamPrintService) {
- return false;
- } else {
- ArrayList var2 = getRegisteredServices();
- if (var2 == null) {
- var2 = initRegisteredServices();
- } else if (var2.contains(var0)) {
- return false;
- }
-
- var2.add(var0);
- return true;
- }
- }
- }
-
- public abstract PrintService[] getPrintServices(DocFlavor var1, AttributeSet var2);
-
- public abstract PrintService[] getPrintServices();
-
- public abstract MultiDocPrintService[] getMultiDocPrintServices(DocFlavor[] var1, AttributeSet var2);
-
- public abstract PrintService getDefaultPrintService();
-
- private static ArrayList getAllLookupServices() {
- synchronized(PrintServiceLookup.class) {
- ArrayList var1 = getListOfLookupServices();
- if (var1 != null) {
- return var1;
- } else {
- var1 = initListOfLookupServices();
-
- try {
- AccessController.doPrivileged(new 1());
- } catch (PrivilegedActionException var4) {
- }
-
- return var1;
- }
- }
- }
-
- private static ArrayList getServices(DocFlavor var0, AttributeSet var1) {
- ArrayList var2 = new ArrayList();
-
- for(PrintServiceLookup var4 : getAllLookupServices()) {
- try {
- PrintService[] var5 = null;
- if (var0 == null && var1 == null) {
- try {
- var5 = var4.getPrintServices();
- } catch (Throwable var8) {
- }
- } else {
- var5 = var4.getPrintServices(var0, var1);
- }
-
- if (var5 != null) {
- for(int var6 = 0; var6 < var5.length; ++var6) {
- var2.add(var5[var6]);
- }
- }
- } catch (Exception var9) {
- }
- }
-
- ArrayList var10 = null;
-
- try {
- SecurityManager var11 = System.getSecurityManager();
- if (var11 != null) {
- var11.checkPrintJobAccess();
- }
-
- var10 = getRegisteredServices();
- } catch (SecurityException var7) {
- }
-
- if (var10 != null) {
- PrintService[] var12 = (PrintService[])var10.toArray(new PrintService[var10.size()]);
-
- for(int var13 = 0; var13 < var12.length; ++var13) {
- if (!var2.contains(var12[var13])) {
- if (var0 == null && var1 == null) {
- var2.add(var12[var13]);
- } else if ((var0 != null && var12[var13].isDocFlavorSupported(var0) || var0 == null) && null == var12[var13].getUnsupportedAttributes(var0, var1)) {
- var2.add(var12[var13]);
- }
- }
- }
- }
-
- return var2;
- }
-
- private static ArrayList getMultiDocServices(DocFlavor[] var0, AttributeSet var1) {
- ArrayList var2 = new ArrayList();
-
- for(PrintServiceLookup var4 : getAllLookupServices()) {
- try {
- MultiDocPrintService[] var5 = var4.getMultiDocPrintServices(var0, var1);
- if (var5 != null) {
- for(int var6 = 0; var6 < var5.length; ++var6) {
- var2.add(var5[var6]);
- }
- }
- } catch (Exception var10) {
- }
- }
-
- ArrayList var11 = null;
-
- try {
- SecurityManager var12 = System.getSecurityManager();
- if (var12 != null) {
- var12.checkPrintJobAccess();
- }
-
- var11 = getRegisteredServices();
- } catch (Exception var9) {
- }
-
- if (var11 != null) {
- PrintService[] var13 = (PrintService[])var11.toArray(new PrintService[var11.size()]);
-
- for(int var14 = 0; var14 < var13.length; ++var14) {
- if (var13[var14] instanceof MultiDocPrintService && !var2.contains(var13[var14])) {
- if (var0 != null && var0.length != 0) {
- boolean var7 = true;
-
- for(int var8 = 0; var8 < var0.length; ++var8) {
- if (!var13[var14].isDocFlavorSupported(var0[var8])) {
- var7 = false;
- break;
- }
-
- if (var13[var14].getUnsupportedAttributes(var0[var8], var1) != null) {
- var7 = false;
- break;
- }
- }
-
- if (var7) {
- var2.add(var13[var14]);
- }
- } else {
- var2.add(var13[var14]);
- }
- }
- }
- }
-
- return var2;
- }
-
- // $FF: synthetic method
- static ArrayList access$200() {
- return getListOfLookupServices();
- }
- }
-